package main

type ChatCompletionRequest struct {
	Model       string    `json:"model"`
	Messages    []Message `json:"messages"`
	Temperature float64   `json:"temperature"`
	TopP        float64   `json:"top_p"`
	MaxTokens   int       `json:"max_tokens"`
	Stream      bool      `json:"stream"`
}

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}

type ChatCompletionResponse struct {
	ID      string   `json:"id"`
	Object  string   `json:"object"`
	Created int64    `json:"created"`
	Model   string   `json:"model"`
	Choices []Choice `json:"choices"`
}

type Choice struct {
	Index   int     `json:"index"`
	Message Message `json:"message"`
}

type ModelConfig struct {
	Curl    string            `json:"curl"`
	Model   string            `json:"model"`
	BaseURL string            `json:"base_url"`
	Headers map[string]string `json:"headers"`
}

type ModelResponse struct {
	Namespace string      `json:"namespace"`
	Name      string      `json:"name"`
	Config    ModelConfig `json:"config"`
}

// 用于 appList.json 的结构
type AppListItem struct {
	Name      string                 `json:"name"`
	Namespace string                 `json:"namespace"`
	URL       string                 `json:"url"`
	Config    map[string]interface{} `json:"config"`
}

// 配置内容
type ConfigContent struct {
	Curl    string            `json:"curl,omitempty"`
	Python  string            `json:"python,omitempty"`
	Model   string            `json:"model"`
	BaseURL string            `json:"base_url"`
	Headers map[string]string `json:"headers"`
}

// 配置管理器
type ConfigManager struct {
	appList []AppListItem
}
